home *** CD-ROM | disk | FTP | other *** search
/ Delphi Developer's Kit 1996 / Delphi Developer's Kit 1996.iso / power / sockv2 / login.pas < prev    next >
Pascal/Delphi Source File  |  1995-12-22  |  4KB  |  156 lines

  1. unit Login;
  2.  
  3. interface
  4.  
  5. uses WinTypes, WinProcs, Classes, Graphics, Forms, Controls, StdCtrls,
  6.   Buttons, SysUtils, IniFiles;
  7.  
  8. type
  9.   TLoginDLG = class(TForm)
  10.     Label1: TLabel;
  11.     Password: TEdit;
  12.     CancelBtn: TBitBtn;
  13.     Label2: TLabel;
  14.     UserName: TEdit;
  15.     Label3: TLabel;
  16.     HostName: TEdit;
  17.     OKBtn: TBitBtn;
  18.     AddBtn: TButton;
  19.     DeleteBtn: TButton;
  20.     Label4: TLabel;
  21.     Profile: TComboBox;
  22.     ModifyBtn: TButton;
  23.     Label5: TLabel;
  24.     Account: TEdit;
  25.     Label6: TLabel;
  26.     Directory: TEdit;
  27.     procedure FormShow(Sender: TObject);
  28.     procedure FormCreate(Sender: TObject);
  29.     procedure ProfileChange(Sender: TObject);
  30.     procedure AddBtnClick(Sender: TObject);
  31.     procedure DeleteBtnClick(Sender: TObject);
  32.     procedure ModifyBtnClick(Sender: TObject);
  33.   private
  34.     procedure RefreshComboBox;
  35.   public
  36.   end;
  37.  
  38. var
  39.   LoginDLG: TLoginDLG;
  40. implementation
  41.  
  42. {$R *.DFM}
  43.  
  44. procedure TLoginDLG.FormShow(Sender: TObject);
  45. begin
  46.   HostName.SetFocus;
  47. end;
  48.  
  49. procedure TLoginDLG.FormCreate(Sender: TObject);
  50. begin
  51.   RefreshComboBox;
  52. end;
  53.  
  54. procedure TLoginDLG.ProfileChange(Sender: TObject);
  55. var
  56.   ftpini: TIniFile;
  57.   CurSel: string;
  58. begin
  59.   ftpini := TIniFile.Create('FTPPROF.INI');
  60.   CurSel := Profile.Items[Profile.ItemIndex];
  61.   HostName.Text := ftpini.ReadString(CurSel,'HostName','');
  62.   UserName.Text := ftpini.ReadString(CurSel,'UserName','');
  63.   Password.Text := ftpini.ReadString(CurSel,'Password','');
  64.   Account.Text := ftpini.ReadString(CurSel,'Account','');
  65.   Directory.Text := ftpini.ReadString(CurSel,'Directory','');
  66. end;
  67.  
  68. procedure TLoginDLG.AddBtnClick(Sender: TObject);
  69. var
  70.   Next, Section: string;
  71.   ftpini: TIniFile;
  72. begin
  73.   ftpini := TIniFile.Create('FTPPROF.INI');
  74.   Next := ftpini.ReadString('index','next','');
  75.   if Next = '' then
  76.   begin
  77.     ftpini.WriteString('index','next','0');
  78.     Next := '0';
  79.   end;
  80.   Section := 'Profile'+Next;
  81.   ftpini.WriteString('index',Section,Profile.Text);
  82.   ftpini.WriteString(Profile.Text,'HostName',HostName.Text);
  83.   ftpini.WriteString(Profile.Text,'UserName',UserName.Text);
  84.   ftpini.WriteString(Profile.Text,'Password',Password.Text);
  85.   ftpini.WriteString(Profile.Text,'Account',Account.Text);
  86.   ftpini.WriteString(Profile.Text,'Directory',Directory.Text);
  87.   Next := IntToStr(StrToInt(Next)+1);
  88.   ftpini.WriteString('index','next',Next);
  89.   Profile.Items.Add(Profile.Text);
  90. end;
  91.  
  92. procedure TLoginDLG.DeleteBtnClick(Sender: TObject);
  93. var
  94.   ftpini: TIniFile;
  95.   i, iNext: integer;
  96.   item: string;
  97.   Next: string;
  98. begin
  99.   ftpini := TIniFile.Create('FTPPROF.INI');
  100.   ftpini.EraseSection(Profile.Text);
  101.   Next := ftpini.ReadString('index','next','');
  102.   if Next = '' then
  103.     exit;
  104.   iNext := StrToInt(Next);
  105.   for i:=0 to iNext do
  106.   begin
  107.     item := ftpini.ReadString('index','Profile'+IntToStr(i),'');
  108.     if item <> '' then
  109.       if item = Profile.Text then
  110.         break;
  111.   end;
  112.   if item <> '' then
  113.     ftpini.WriteString('index','Profile'+IntToStr(i),'');
  114.   RefreshComboBox;
  115. end;
  116.  
  117. procedure TLoginDLG.ModifyBtnClick(Sender: TObject);
  118. var
  119.   ftpini: TIniFile;
  120. begin
  121.   ftpini := TIniFile.Create('FTPPROF.INI');
  122.   ftpini.WriteString(Profile.Text,'HostName',HostName.Text);
  123.   ftpini.WriteString(Profile.Text,'UserName',UserName.Text);
  124.   ftpini.WriteString(Profile.Text,'Password',Password.Text);
  125.   ftpini.WriteString(Profile.Text,'Account',Account.Text);
  126.   ftpini.WriteString(Profile.Text,'Directory',Directory.Text);
  127. end;
  128.  
  129. procedure TLoginDLG.RefreshComboBox;
  130. var
  131.   i, iNext: integer;
  132.   item, Next: string;
  133.   ftpini: TIniFile;
  134. begin
  135.   Profile.Clear;
  136.   ftpini := TIniFile.Create('FTPPROF.INI');
  137.   Next := ftpini.ReadString('index','next','');
  138.   if Next = '' then
  139.   begin
  140.     ftpini.WriteString('index','next','0');
  141.     Next := '0';
  142.   end;
  143.   iNext := StrToInt(Next);
  144.   for i:=0 to iNext do
  145.   begin
  146.     item := ftpini.ReadString('index','Profile'+IntToStr(i),'');
  147.     if item <> '' then
  148.       Profile.Items.Add(item);
  149.   end;
  150.   Profile.ItemIndex := 0;
  151.   ProfileChange(self);
  152. end;
  153.  
  154. end.
  155.  
  156.